package org.bouncycastle.asn1.x500.style;

import org.bouncycastle.asn1.x500.RDN;
import org.bouncycastle.asn1.x500.X500Name;

/**
 * Variation of BCStyle that insists on strict ordering for equality and
 * hashCode comparisons
 */
public class BCStrictStyle extends BCStyle {
    public boolean areEqual(X500Name name1, X500Name name2) {
        RDN[] rdns1 = name1.getRDNs();
        RDN[] rdns2 = name2.getRDNs();

        if (rdns1.length != rdns2.length) {
            return false;
        }

        for (int i = 0; i != rdns1.length; i++) {
            if (rdnAreEqual(rdns1[i], rdns2[i])) {
                return false;
            }
        }

        return true;
    }
}
